package com.example.dw.service;

import com.example.dw.dto.*;
import com.example.dw.entity.*;

import java.util.List;
import java.util.Map;

/**
 * 考试服务接口
 * @author system
 * @since 2024-01-01
 */
public interface ExamService {

    /**
     * 生成考试
     */
    Map<String, Object> generateExam(Integer userid, ExamGenerateDTO generateDTO);

    /**
     * 对比答案
     */
    Map<String, Object> compareAnswer(Integer userid, AnswerCompareDTO compareDTO);

    /**
     * 提交考试
     */
    Map<String, Object> submitExam(Integer userid, ExamSubmitDTO submitDTO);

    /**
     * 获取用户所有考试记录
     */
    List<UserExam> getAllExams(Integer userid);

    /**
     * 获取用户未完成的考试记录
     */
    List<UserExam> getUnfinishedExam(Integer userid);

    /**
     * 根据考试ID获取考试详情
     */
    Map<String, Object> getExamById(Integer userid, Integer examId);

    /**
     * 根据课程类型ID获取考试列表
     */
    List<Exam> getExamByCourseType(Integer courseTypeid);

    /**
     * 判断是否可以生成考试
     */
    Map<String, Object> judgeGenerateExam(Integer userid, ExamGenerateDTO generateDTO);

    /**
     * 根据课程类型ID分页获取考试列表
     */
    Map<String, Object> getExamByCourseTypePage(Integer userid, ExamQueryDTO queryDTO);

    /**
     * 根据课程类型ID获取用户未完成的考试记录
     */
    List<UserExam> getUnfinishedExamByCourseType(Integer userid, Integer courseTypeid);
} 